//二次封装axios
//引入axios
import axios from 'axios'
//请求进度条插件的引入
import nprogress from 'nprogress'
//引入请求进度条的样式
import 'nprogress/nprogress.css'
//引入store 它只是一个普通的js 文件 并且是默认暴露的，所以我们可以直接引入
//有弹幕说到 this.$store.state.detail 这样是不行的 因为  此方法只能在vue文件中使用
import store from '@/store'


const requsets = axios.create({
  baseURL: '/api',
  timeout: 10000
})

//请求拦截器
requsets.interceptors.request.use((config) => {
    //看大仓库的detail 中 有没有 uuid  有id的话 在请求头上添加游客临时id
    //这样在加入购物车的时候，后台就知道把什么数据返回给你了
    if (store.state.Dtail.uuid_token) {
      config.headers.userTempId = store.state.Dtail.uuid_token
    }
    //这里和上面uuid一样，我们请求数据的接口 并没有位置带token参数
    //因为提前和后台老师说好了，我们的token 在请求头里面带过去
    //就判断大仓库的user小仓库里 有没有请求头 因为我们一点击登录 肯定会把token存进去
    //所以如果里面有token  我们就把token 添加到请求头里面
    if (store.state.User.token) {
      config.headers.token = store.state.User.token
    }

    //请求进度条
    nprogress.start()
    return config

  })
  //响应拦截器
requsets.interceptors.response.use((res) => {
  //请求成功
  nprogress.done()
  return res.data
}, (err) => {
  alert("服务器响应数据失败");
})

export default requsets